package com.mcgrady.oop;

import org.junit.Test;

/**
 * @author McGrady
 */
public class ExtendTest {
    static class Employee {
        private Double sal;

        public Double getSal() {
            return sal;
        }

        public void setSal(Double sal) {
            this.sal = sal;
        }

        public Employee() {
            System.out.println("Employee()...");
        }
    }

    static class Manager extends Employee {
        private Double bonus;

        public Double getBonus() {
            return bonus;
        }

        public void setBonus(Double bonus) {
            this.bonus = bonus;
        }

        public Manager() {
            System.out.println("Manager()...");
        }

        public Double total() {
            return this.bonus + super.getSal();
        }
    }

    @Test
    public void totalSal() {
        Manager peter = new Manager();
        peter.setBonus(2000.0);
        peter.setSal(5000.0);
        System.out.println(peter.total());
    }

    /**
     * 1. (T/F)抽象类能继承普通类吗？       T
     * 2. (T/F)普通类能继承两个抽象类吗？   F
     * 3. (T/F)抽象类能继承两个普通类吗？   F
     * 4. (T/F)抽象类能继承接口吗？        F
     * 5. (T/F)抽象类能继承两个接口吗？     F
     * 6. (T/F)接口能继承抽象类吗？         F
     * 7. (T/F)接口能继承两个抽象类吗？     F
     * 8. (T/F)普通类能继承接口吗？        F
     * 9. (T/F)普通类能继承两个接口吗？    F
     * 10. (T/F)接口能继承普通类吗？       F
     * 11. (T/F)接口能继承两个普通类吗？    F
     * 12. (T/F)普通类能继承普通类吗？      T
     * 13. (T/F)普通类能继承两个普通类吗？   F
     * 14. (T/F)抽象类能继承抽象类吗？       T
     * 15. (T/F)抽象类能继承两个抽象类吗？   F
     * 16. (T/F)接口能继承接口吗？          T
     * 17. (T/F)接口能继承两个接口吗？      T
     * 18. (T/F)普通类能实现接口吗？        T
     * 19. (T/F)普通类能实现两个接口吗？    T
     * 20. (T/F)抽象类能实现接口吗？       T
     * 21. (T/F)抽象类能实现两个接口吗？    T
     * 22. (T/F)接口能实现接口吗？         F
     * 23. (T/F)接口能实现两个接口吗？     F
     */

    /**
     * 普通类只能继承普通类，可以实现多个接口
     * 抽象类不能继承接口，可以实现多个接口
     * 一个类不能继承两个类
     * 接口能继承多个接口，不能实现接口
     */
}
